import { applyDecorators } from '@nestjs/common';
import { Type } from 'class-transformer';
import { IsNumber } from 'class-validator';

/**
 * @description
 * 当 DTO 中的某个字段类型为 number 时使用此装饰器。如果接收的参数不是 number，会自动进行转换。
 * @example
 * // 在 DTO 中使用该装饰器
 * class CreateItemDto {
 *   @Decorator_DtoIsNumber_Base()
 *   price: number;
 * }
 * @returns {ReturnType<typeof applyDecorators>} - 返回应用的装饰器。
 */
export function Decorator_DtoIsNumber_Base(): ReturnType<typeof applyDecorators> {
  return applyDecorators(
    IsNumber(),
    Type(() => Number),
  );
}
